Fix clicking offscreen horizontally (#105)
This patch starts clicking in the center of the element area which is visible in a viewport. Fixes #103.
This commit is contained in:
parent
0a3125434e
commit
a24cec20f9
@ -332,8 +332,8 @@ class Frame {
|
||||
element.scrollIntoViewIfNeeded();
|
||||
let rect = element.getBoundingClientRect();
|
||||
return {
|
||||
x: (rect.left + rect.right) / 2,
|
||||
y: (rect.top + rect.bottom) / 2
|
||||
x: (Math.max(rect.left, 0) + Math.min(rect.right, window.innerWidth)) / 2,
|
||||
y: (Math.max(rect.top, 0) + Math.min(rect.bottom, window.innerHeight)) / 2
|
||||
};
|
||||
}, selector);
|
||||
if (!center)
|
||||
|
10
test/test.js
10
test/test.js
@ -911,6 +911,16 @@ describe('Puppeteer', function() {
|
||||
await page.click('#button-80');
|
||||
expect(await page.$('#button-80', button => button.textContent)).toBe('clicked');
|
||||
}));
|
||||
it('should click a partially obscured button', SX(async function() {
|
||||
await page.navigate(PREFIX + '/input/button.html');
|
||||
await page.$('button', button => {
|
||||
button.textContent = 'Some really long text that will go offscreen';
|
||||
button.style.position = 'absolute';
|
||||
button.style.left = '368px';
|
||||
});
|
||||
await page.click('button');
|
||||
expect(await page.evaluate(() => window.result)).toBe('Clicked');
|
||||
}));
|
||||
it('should select the text with mouse', SX(async function(){
|
||||
await page.navigate(PREFIX + '/input/textarea.html');
|
||||
await page.focus('textarea');
|
||||
|
Loading…
Reference in New Issue
Block a user