Good night
I want to click the upload image button using chrome selenium
I've tried to code, but it doesn't work
Sub trial()
Dim ch As Selenium.ChromeDriver
ch.Start
ch.Get "https://sellercenter/product/publish"
ch.FindElementByClass("next-btn next-medium next-btn-primary").Click
end sub
this is the html code
<button type="button" class="next-btn next-medium next-btn-primary" role="button">Upload Image</button>
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>
Would appreciate any advice on how to click this button using the Selenium in Excel VBA, thanks.
CodePudding user response:
By.CLASS_NAME
accepts a single classname. So you can't pass multiple classnames with in FindElementByClass()
.
To click() on the element Upload Image you can use either of the following Locator Strategies:
Using FindElementByCss:
ch.FindElementByCss("a.next-btn.next-medium.next-btn-primary").Click
Using FindElementByXPath:
ch.FindElementByXPath("//a[@class='next-btn next-medium next-btn-primary' and text()='Upload Image']").Click
CodePudding user response:
First thing in selenium when you are writing selectors, always check their occurrence. If you want to click on particular element then selector should show 1 matching count. Now here you have use class value which looks like it have more than one matching node as well as you can use class value this way in selenium when there is more than one class(more words separated by space in class value).
So here I would recommend to use below xpath and before using it in your code, verify it if it is showing one matching node-
//button[text()='Upload Image']